package modele.coupSpecial;

import modele.Plateau;
import modele.case_.Case;
import modele.pion.Pion;

/**
 * Représente un coup spécial qui attaque d'autres pions
 *
 * @author zianechm
 */
public abstract class CoupSpecialAttaque extends CoupSpecial {

	/**
	 * Crée un coupSpécialAttaque
	 */
	public CoupSpecialAttaque() {
		super();
	}

	@Override
	public void effectuerCoupSpecial(Plateau p) {
		for (Case c1 : porteeCoupSpecial(p)) {
			Pion pion = c1.getPion();
			if (pion != null) {
				lanceur.infligerDegats(pion);
				if (pion.estDecede()) {
					pion.deces();
					lanceur.setPv(lanceur.getPv() + (int) (pion.getDissipation() * pion.getPvMax()));
					if (lanceur.getPv() > lanceur.getPvMax()) {
						lanceur.setPvMax(lanceur.getPv());
					}
				}
			}
		}
		setCoupSpecialDispo(false);
	}
}
